//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(undefined === undefined);
write(undefined === null);
write(undefined === true);
write(undefined === false);
write(undefined === Boolean(true));
write(undefined === Boolean(false));
write(undefined === new Boolean(true));
write(undefined === new Boolean(false));
write(undefined === NaN);
write(undefined === +0);
write(undefined === -0);
write(undefined === 0);
write(undefined === 0.0);
write(undefined === -0.0);
write(undefined === +0.0);
write(undefined === 1);
write(undefined === 10);
write(undefined === 10.0);
write(undefined === 10.1);
write(undefined === -1);
write(undefined === -10);
write(undefined === -10.0);
write(undefined === -10.1);
write(undefined === Number.MAX_VALUE);
write(undefined === Number.MIN_VALUE);
write(undefined === Number.NaN);
write(undefined === Number.POSITIVE_INFINITY);
write(undefined === Number.NEGATIVE_INFINITY);
write(undefined === new Number(NaN));
write(undefined === new Number(+0));
write(undefined === new Number(-0));
write(undefined === new Number(0));
write(undefined === new Number(0.0));
write(undefined === new Number(-0.0));
write(undefined === new Number(+0.0));
write(undefined === new Number(1));
write(undefined === new Number(10));
write(undefined === new Number(10.0));
write(undefined === new Number(10.1));
write(undefined === new Number(-1));
write(undefined === new Number(-10));
write(undefined === new Number(-10.0));
write(undefined === new Number(-10.1));
write(undefined === new Number(Number.MAX_VALUE));
write(undefined === new Number(Number.MIN_VALUE));
write(undefined === new Number(Number.NaN));
write(undefined === new Number(Number.POSITIVE_INFINITY));
write(undefined === new Number(Number.NEGATIVE_INFINITY));
write(undefined === '');
write(undefined === 0xa);
write(undefined === 04);
write(undefined === 'hello');
write(undefined === 'hel' + 'lo');
write(undefined === String(''));
write(undefined === String('hello'));
write(undefined === String('h' + 'ello'));
write(undefined === new String(''));
write(undefined === new String('hello'));
write(undefined === new String('he' + 'llo'));
write(undefined === new Object());
write(undefined === new Object());
write(undefined === [1, 2, 3]);
write(undefined === [1 ,2 , 3]);
write(undefined === new Array(3));
write(undefined === Array(3));
write(undefined === new Array(1 ,2 ,3));
write(undefined === Array(1));
write(undefined === foo);
write(null === undefined);
write(null === null);
write(null === true);
write(null === false);
write(null === Boolean(true));
write(null === Boolean(false));
write(null === new Boolean(true));
write(null === new Boolean(false));
write(null === NaN);
write(null === +0);
write(null === -0);
write(null === 0);
write(null === 0.0);
write(null === -0.0);
write(null === +0.0);
write(null === 1);
write(null === 10);
write(null === 10.0);
write(null === 10.1);
write(null === -1);
write(null === -10);
write(null === -10.0);
write(null === -10.1);
write(null === Number.MAX_VALUE);
write(null === Number.MIN_VALUE);
write(null === Number.NaN);
write(null === Number.POSITIVE_INFINITY);
write(null === Number.NEGATIVE_INFINITY);
write(null === new Number(NaN));
write(null === new Number(+0));
write(null === new Number(-0));
write(null === new Number(0));
write(null === new Number(0.0));
write(null === new Number(-0.0));
write(null === new Number(+0.0));
write(null === new Number(1));
write(null === new Number(10));
write(null === new Number(10.0));
write(null === new Number(10.1));
write(null === new Number(-1));
write(null === new Number(-10));
write(null === new Number(-10.0));
write(null === new Number(-10.1));
write(null === new Number(Number.MAX_VALUE));
write(null === new Number(Number.MIN_VALUE));
write(null === new Number(Number.NaN));
write(null === new Number(Number.POSITIVE_INFINITY));
write(null === new Number(Number.NEGATIVE_INFINITY));
write(null === '');
write(null === 0xa);
write(null === 04);
write(null === 'hello');
write(null === 'hel' + 'lo');
write(null === String(''));
write(null === String('hello'));
write(null === String('h' + 'ello'));
write(null === new String(''));
write(null === new String('hello'));
write(null === new String('he' + 'llo'));
write(null === new Object());
write(null === new Object());
write(null === [1, 2, 3]);
write(null === [1 ,2 , 3]);
write(null === new Array(3));
write(null === Array(3));
write(null === new Array(1 ,2 ,3));
write(null === Array(1));
write(null === foo);
write(true === undefined);
write(true === null);
write(true === true);
write(true === false);
write(true === Boolean(true));
write(true === Boolean(false));
write(true === new Boolean(true));
write(true === new Boolean(false));
write(true === NaN);
write(true === +0);
write(true === -0);
write(true === 0);
write(true === 0.0);
write(true === -0.0);
write(true === +0.0);
write(true === 1);
write(true === 10);
write(true === 10.0);
write(true === 10.1);
write(true === -1);
write(true === -10);
write(true === -10.0);
write(true === -10.1);
write(true === Number.MAX_VALUE);
write(true === Number.MIN_VALUE);
write(true === Number.NaN);
write(true === Number.POSITIVE_INFINITY);
write(true === Number.NEGATIVE_INFINITY);
write(true === new Number(NaN));
write(true === new Number(+0));
write(true === new Number(-0));
write(true === new Number(0));
write(true === new Number(0.0));
write(true === new Number(-0.0));
write(true === new Number(+0.0));
write(true === new Number(1));
write(true === new Number(10));
write(true === new Number(10.0));
write(true === new Number(10.1));
write(true === new Number(-1));
write(true === new Number(-10));
write(true === new Number(-10.0));
write(true === new Number(-10.1));
write(true === new Number(Number.MAX_VALUE));
write(true === new Number(Number.MIN_VALUE));
write(true === new Number(Number.NaN));
write(true === new Number(Number.POSITIVE_INFINITY));
write(true === new Number(Number.NEGATIVE_INFINITY));
write(true === '');
write(true === 0xa);
write(true === 04);
write(true === 'hello');
write(true === 'hel' + 'lo');
write(true === String(''));
write(true === String('hello'));
write(true === String('h' + 'ello'));
write(true === new String(''));
write(true === new String('hello'));
write(true === new String('he' + 'llo'));
write(true === new Object());
write(true === new Object());
write(true === [1, 2, 3]);
write(true === [1 ,2 , 3]);
write(true === new Array(3));
write(true === Array(3));
write(true === new Array(1 ,2 ,3));
write(true === Array(1));
write(true === foo);
write(false === undefined);
write(false === null);
write(false === true);
write(false === false);
write(false === Boolean(true));
write(false === Boolean(false));
write(false === new Boolean(true));
write(false === new Boolean(false));
write(false === NaN);
write(false === +0);
write(false === -0);
write(false === 0);
write(false === 0.0);
write(false === -0.0);
write(false === +0.0);
write(false === 1);
write(false === 10);
write(false === 10.0);
write(false === 10.1);
write(false === -1);
write(false === -10);
write(false === -10.0);
write(false === -10.1);
write(false === Number.MAX_VALUE);
write(false === Number.MIN_VALUE);
write(false === Number.NaN);
write(false === Number.POSITIVE_INFINITY);
write(false === Number.NEGATIVE_INFINITY);
write(false === new Number(NaN));
write(false === new Number(+0));
write(false === new Number(-0));
write(false === new Number(0));
write(false === new Number(0.0));
write(false === new Number(-0.0));
write(false === new Number(+0.0));
write(false === new Number(1));
write(false === new Number(10));
write(false === new Number(10.0));
write(false === new Number(10.1));
write(false === new Number(-1));
write(false === new Number(-10));
write(false === new Number(-10.0));
write(false === new Number(-10.1));
write(false === new Number(Number.MAX_VALUE));
write(false === new Number(Number.MIN_VALUE));
write(false === new Number(Number.NaN));
write(false === new Number(Number.POSITIVE_INFINITY));
write(false === new Number(Number.NEGATIVE_INFINITY));
write(false === '');
write(false === 0xa);
write(false === 04);
write(false === 'hello');
write(false === 'hel' + 'lo');
write(false === String(''));
write(false === String('hello'));
write(false === String('h' + 'ello'));
write(false === new String(''));
write(false === new String('hello'));
write(false === new String('he' + 'llo'));
write(false === new Object());
write(false === new Object());
write(false === [1, 2, 3]);
write(false === [1 ,2 , 3]);
write(false === new Array(3));
write(false === Array(3));
write(false === new Array(1 ,2 ,3));
write(false === Array(1));
write(false === foo);
write(Boolean(true) === undefined);
write(Boolean(true) === null);
write(Boolean(true) === true);
write(Boolean(true) === false);
write(Boolean(true) === Boolean(true));
write(Boolean(true) === Boolean(false));
write(Boolean(true) === new Boolean(true));
write(Boolean(true) === new Boolean(false));
write(Boolean(true) === NaN);
write(Boolean(true) === +0);
write(Boolean(true) === -0);
write(Boolean(true) === 0);
write(Boolean(true) === 0.0);
write(Boolean(true) === -0.0);
write(Boolean(true) === +0.0);
write(Boolean(true) === 1);
write(Boolean(true) === 10);
write(Boolean(true) === 10.0);
write(Boolean(true) === 10.1);
write(Boolean(true) === -1);
write(Boolean(true) === -10);
write(Boolean(true) === -10.0);
write(Boolean(true) === -10.1);
write(Boolean(true) === Number.MAX_VALUE);
write(Boolean(true) === Number.MIN_VALUE);
write(Boolean(true) === Number.NaN);
write(Boolean(true) === Number.POSITIVE_INFINITY);
write(Boolean(true) === Number.NEGATIVE_INFINITY);
write(Boolean(true) === new Number(NaN));
write(Boolean(true) === new Number(+0));
write(Boolean(true) === new Number(-0));
write(Boolean(true) === new Number(0));
write(Boolean(true) === new Number(0.0));
write(Boolean(true) === new Number(-0.0));
write(Boolean(true) === new Number(+0.0));
write(Boolean(true) === new Number(1));
write(Boolean(true) === new Number(10));
write(Boolean(true) === new Number(10.0));
write(Boolean(true) === new Number(10.1));
write(Boolean(true) === new Number(-1));
write(Boolean(true) === new Number(-10));
write(Boolean(true) === new Number(-10.0));
write(Boolean(true) === new Number(-10.1));
write(Boolean(true) === new Number(Number.MAX_VALUE));
write(Boolean(true) === new Number(Number.MIN_VALUE));
write(Boolean(true) === new Number(Number.NaN));
write(Boolean(true) === new Number(Number.POSITIVE_INFINITY));
write(Boolean(true) === new Number(Number.NEGATIVE_INFINITY));
write(Boolean(true) === '');
write(Boolean(true) === 0xa);
write(Boolean(true) === 04);
write(Boolean(true) === 'hello');
write(Boolean(true) === 'hel' + 'lo');
write(Boolean(true) === String(''));
write(Boolean(true) === String('hello'));
write(Boolean(true) === String('h' + 'ello'));
write(Boolean(true) === new String(''));
write(Boolean(true) === new String('hello'));
write(Boolean(true) === new String('he' + 'llo'));
write(Boolean(true) === new Object());
write(Boolean(true) === new Object());
write(Boolean(true) === [1, 2, 3]);
write(Boolean(true) === [1 ,2 , 3]);
write(Boolean(true) === new Array(3));
write(Boolean(true) === Array(3));
write(Boolean(true) === new Array(1 ,2 ,3));
write(Boolean(true) === Array(1));
write(Boolean(true) === foo);
write(Boolean(false) === undefined);
write(Boolean(false) === null);
write(Boolean(false) === true);
write(Boolean(false) === false);
write(Boolean(false) === Boolean(true));
write(Boolean(false) === Boolean(false));
write(Boolean(false) === new Boolean(true));
write(Boolean(false) === new Boolean(false));
write(Boolean(false) === NaN);
write(Boolean(false) === +0);
write(Boolean(false) === -0);
write(Boolean(false) === 0);
write(Boolean(false) === 0.0);
write(Boolean(false) === -0.0);
write(Boolean(false) === +0.0);
write(Boolean(false) === 1);
write(Boolean(false) === 10);
write(Boolean(false) === 10.0);
write(Boolean(false) === 10.1);
write(Boolean(false) === -1);
write(Boolean(false) === -10);
write(Boolean(false) === -10.0);
write(Boolean(false) === -10.1);
write(Boolean(false) === Number.MAX_VALUE);
write(Boolean(false) === Number.MIN_VALUE);
write(Boolean(false) === Number.NaN);
write(Boolean(false) === Number.POSITIVE_INFINITY);
write(Boolean(false) === Number.NEGATIVE_INFINITY);
write(Boolean(false) === new Number(NaN));
write(Boolean(false) === new Number(+0));
write(Boolean(false) === new Number(-0));
write(Boolean(false) === new Number(0));
write(Boolean(false) === new Number(0.0));
write(Boolean(false) === new Number(-0.0));
write(Boolean(false) === new Number(+0.0));
write(Boolean(false) === new Number(1));
write(Boolean(false) === new Number(10));
write(Boolean(false) === new Number(10.0));
write(Boolean(false) === new Number(10.1));
write(Boolean(false) === new Number(-1));
write(Boolean(false) === new Number(-10));
write(Boolean(false) === new Number(-10.0));
write(Boolean(false) === new Number(-10.1));
write(Boolean(false) === new Number(Number.MAX_VALUE));
write(Boolean(false) === new Number(Number.MIN_VALUE));
write(Boolean(false) === new Number(Number.NaN));
write(Boolean(false) === new Number(Number.POSITIVE_INFINITY));
write(Boolean(false) === new Number(Number.NEGATIVE_INFINITY));
write(Boolean(false) === '');
write(Boolean(false) === 0xa);
write(Boolean(false) === 04);
write(Boolean(false) === 'hello');
write(Boolean(false) === 'hel' + 'lo');
write(Boolean(false) === String(''));
write(Boolean(false) === String('hello'));
write(Boolean(false) === String('h' + 'ello'));
write(Boolean(false) === new String(''));
write(Boolean(false) === new String('hello'));
write(Boolean(false) === new String('he' + 'llo'));
write(Boolean(false) === new Object());
write(Boolean(false) === new Object());
write(Boolean(false) === [1, 2, 3]);
write(Boolean(false) === [1 ,2 , 3]);
write(Boolean(false) === new Array(3));
write(Boolean(false) === Array(3));
write(Boolean(false) === new Array(1 ,2 ,3));
write(Boolean(false) === Array(1));
write(Boolean(false) === foo);
write(new Boolean(true) === undefined);
write(new Boolean(true) === null);
write(new Boolean(true) === true);
write(new Boolean(true) === false);
write(new Boolean(true) === Boolean(true));
write(new Boolean(true) === Boolean(false));
write(new Boolean(true) === new Boolean(true));
write(new Boolean(true) === new Boolean(false));
write(new Boolean(true) === NaN);
write(new Boolean(true) === +0);
write(new Boolean(true) === -0);
write(new Boolean(true) === 0);
write(new Boolean(true) === 0.0);
write(new Boolean(true) === -0.0);
write(new Boolean(true) === +0.0);
write(new Boolean(true) === 1);
write(new Boolean(true) === 10);
write(new Boolean(true) === 10.0);
write(new Boolean(true) === 10.1);
write(new Boolean(true) === -1);
write(new Boolean(true) === -10);
write(new Boolean(true) === -10.0);
write(new Boolean(true) === -10.1);
write(new Boolean(true) === Number.MAX_VALUE);
write(new Boolean(true) === Number.MIN_VALUE);
write(new Boolean(true) === Number.NaN);
write(new Boolean(true) === Number.POSITIVE_INFINITY);
write(new Boolean(true) === Number.NEGATIVE_INFINITY);
write(new Boolean(true) === new Number(NaN));
write(new Boolean(true) === new Number(+0));
write(new Boolean(true) === new Number(-0));
write(new Boolean(true) === new Number(0));
write(new Boolean(true) === new Number(0.0));
write(new Boolean(true) === new Number(-0.0));
write(new Boolean(true) === new Number(+0.0));
write(new Boolean(true) === new Number(1));
write(new Boolean(true) === new Number(10));
write(new Boolean(true) === new Number(10.0));
write(new Boolean(true) === new Number(10.1));
write(new Boolean(true) === new Number(-1));
write(new Boolean(true) === new Number(-10));
write(new Boolean(true) === new Number(-10.0));
write(new Boolean(true) === new Number(-10.1));
write(new Boolean(true) === new Number(Number.MAX_VALUE));
write(new Boolean(true) === new Number(Number.MIN_VALUE));
write(new Boolean(true) === new Number(Number.NaN));
write(new Boolean(true) === new Number(Number.POSITIVE_INFINITY));
write(new Boolean(true) === new Number(Number.NEGATIVE_INFINITY));
write(new Boolean(true) === '');
write(new Boolean(true) === 0xa);
write(new Boolean(true) === 04);
write(new Boolean(true) === 'hello');
write(new Boolean(true) === 'hel' + 'lo');
write(new Boolean(true) === String(''));
write(new Boolean(true) === String('hello'));
write(new Boolean(true) === String('h' + 'ello'));
write(new Boolean(true) === new String(''));
write(new Boolean(true) === new String('hello'));
write(new Boolean(true) === new String('he' + 'llo'));
write(new Boolean(true) === new Object());
write(new Boolean(true) === new Object());
write(new Boolean(true) === [1, 2, 3]);
write(new Boolean(true) === [1 ,2 , 3]);
write(new Boolean(true) === new Array(3));
write(new Boolean(true) === Array(3));
write(new Boolean(true) === new Array(1 ,2 ,3));
write(new Boolean(true) === Array(1));
write(new Boolean(true) === foo);
write(new Boolean(false) === undefined);
write(new Boolean(false) === null);
write(new Boolean(false) === true);
write(new Boolean(false) === false);
write(new Boolean(false) === Boolean(true));
write(new Boolean(false) === Boolean(false));
write(new Boolean(false) === new Boolean(true));
write(new Boolean(false) === new Boolean(false));
write(new Boolean(false) === NaN);
write(new Boolean(false) === +0);
write(new Boolean(false) === -0);
write(new Boolean(false) === 0);
write(new Boolean(false) === 0.0);
write(new Boolean(false) === -0.0);
write(new Boolean(false) === +0.0);
write(new Boolean(false) === 1);
write(new Boolean(false) === 10);
write(new Boolean(false) === 10.0);
write(new Boolean(false) === 10.1);
write(new Boolean(false) === -1);
write(new Boolean(false) === -10);
write(new Boolean(false) === -10.0);
write(new Boolean(false) === -10.1);
write(new Boolean(false) === Number.MAX_VALUE);
write(new Boolean(false) === Number.MIN_VALUE);
write(new Boolean(false) === Number.NaN);
write(new Boolean(false) === Number.POSITIVE_INFINITY);
write(new Boolean(false) === Number.NEGATIVE_INFINITY);
write(new Boolean(false) === new Number(NaN));
write(new Boolean(false) === new Number(+0));
write(new Boolean(false) === new Number(-0));
write(new Boolean(false) === new Number(0));
write(new Boolean(false) === new Number(0.0));
write(new Boolean(false) === new Number(-0.0));
write(new Boolean(false) === new Number(+0.0));
write(new Boolean(false) === new Number(1));
write(new Boolean(false) === new Number(10));
write(new Boolean(false) === new Number(10.0));
write(new Boolean(false) === new Number(10.1));
write(new Boolean(false) === new Number(-1));
write(new Boolean(false) === new Number(-10));
write(new Boolean(false) === new Number(-10.0));
write(new Boolean(false) === new Number(-10.1));
write(new Boolean(false) === new Number(Number.MAX_VALUE));
write(new Boolean(false) === new Number(Number.MIN_VALUE));
write(new Boolean(false) === new Number(Number.NaN));
write(new Boolean(false) === new Number(Number.POSITIVE_INFINITY));
write(new Boolean(false) === new Number(Number.NEGATIVE_INFINITY));
write(new Boolean(false) === '');
write(new Boolean(false) === 0xa);
write(new Boolean(false) === 04);
write(new Boolean(false) === 'hello');
write(new Boolean(false) === 'hel' + 'lo');
write(new Boolean(false) === String(''));
write(new Boolean(false) === String('hello'));
write(new Boolean(false) === String('h' + 'ello'));
write(new Boolean(false) === new String(''));
write(new Boolean(false) === new String('hello'));
write(new Boolean(false) === new String('he' + 'llo'));
write(new Boolean(false) === new Object());
write(new Boolean(false) === new Object());
write(new Boolean(false) === [1, 2, 3]);
write(new Boolean(false) === [1 ,2 , 3]);
write(new Boolean(false) === new Array(3));
write(new Boolean(false) === Array(3));
write(new Boolean(false) === new Array(1 ,2 ,3));
write(new Boolean(false) === Array(1));
write(new Boolean(false) === foo);
write(NaN === undefined);
write(NaN === null);
write(NaN === true);
write(NaN === false);
write(NaN === Boolean(true));
write(NaN === Boolean(false));
write(NaN === new Boolean(true));
write(NaN === new Boolean(false));
write(NaN === NaN);
write(NaN === +0);
write(NaN === -0);
write(NaN === 0);
write(NaN === 0.0);
write(NaN === -0.0);
write(NaN === +0.0);
write(NaN === 1);
write(NaN === 10);
write(NaN === 10.0);
write(NaN === 10.1);
write(NaN === -1);
write(NaN === -10);
write(NaN === -10.0);
write(NaN === -10.1);
write(NaN === Number.MAX_VALUE);
write(NaN === Number.MIN_VALUE);
write(NaN === Number.NaN);
write(NaN === Number.POSITIVE_INFINITY);
write(NaN === Number.NEGATIVE_INFINITY);
write(NaN === new Number(NaN));
write(NaN === new Number(+0));
write(NaN === new Number(-0));
write(NaN === new Number(0));
write(NaN === new Number(0.0));
write(NaN === new Number(-0.0));
write(NaN === new Number(+0.0));
write(NaN === new Number(1));
write(NaN === new Number(10));
write(NaN === new Number(10.0));
write(NaN === new Number(10.1));
write(NaN === new Number(-1));
write(NaN === new Number(-10));
write(NaN === new Number(-10.0));
write(NaN === new Number(-10.1));
write(NaN === new Number(Number.MAX_VALUE));
write(NaN === new Number(Number.MIN_VALUE));
write(NaN === new Number(Number.NaN));
write(NaN === new Number(Number.POSITIVE_INFINITY));
write(NaN === new Number(Number.NEGATIVE_INFINITY));
write(NaN === '');
write(NaN === 0xa);
write(NaN === 04);
write(NaN === 'hello');
write(NaN === 'hel' + 'lo');
write(NaN === String(''));
write(NaN === String('hello'));
write(NaN === String('h' + 'ello'));
write(NaN === new String(''));
write(NaN === new String('hello'));
write(NaN === new String('he' + 'llo'));
write(NaN === new Object());
write(NaN === new Object());
write(NaN === [1, 2, 3]);
write(NaN === [1 ,2 , 3]);
write(NaN === new Array(3));
write(NaN === Array(3));
write(NaN === new Array(1 ,2 ,3));
write(NaN === Array(1));
write(NaN === foo);
write(+0 === undefined);
write(+0 === null);
write(+0 === true);
write(+0 === false);
write(+0 === Boolean(true));
write(+0 === Boolean(false));
write(+0 === new Boolean(true));
write(+0 === new Boolean(false));
write(+0 === NaN);
write(+0 === +0);
write(+0 === -0);
write(+0 === 0);
write(+0 === 0.0);
write(+0 === -0.0);
write(+0 === +0.0);
write(+0 === 1);
write(+0 === 10);
write(+0 === 10.0);
write(+0 === 10.1);
write(+0 === -1);
write(+0 === -10);
write(+0 === -10.0);
write(+0 === -10.1);
write(+0 === Number.MAX_VALUE);
write(+0 === Number.MIN_VALUE);
write(+0 === Number.NaN);
write(+0 === Number.POSITIVE_INFINITY);
write(+0 === Number.NEGATIVE_INFINITY);
write(+0 === new Number(NaN));
write(+0 === new Number(+0));
write(+0 === new Number(-0));
write(+0 === new Number(0));
write(+0 === new Number(0.0));
write(+0 === new Number(-0.0));
write(+0 === new Number(+0.0));
write(+0 === new Number(1));
write(+0 === new Number(10));
write(+0 === new Number(10.0));
write(+0 === new Number(10.1));
write(+0 === new Number(-1));
write(+0 === new Number(-10));
write(+0 === new Number(-10.0));
write(+0 === new Number(-10.1));
write(+0 === new Number(Number.MAX_VALUE));
write(+0 === new Number(Number.MIN_VALUE));
write(+0 === new Number(Number.NaN));
write(+0 === new Number(Number.POSITIVE_INFINITY));
write(+0 === new Number(Number.NEGATIVE_INFINITY));
write(+0 === '');
write(+0 === 0xa);
write(+0 === 04);
write(+0 === 'hello');
write(+0 === 'hel' + 'lo');
write(+0 === String(''));
write(+0 === String('hello'));
write(+0 === String('h' + 'ello'));
write(+0 === new String(''));
write(+0 === new String('hello'));
write(+0 === new String('he' + 'llo'));
write(+0 === new Object());
write(+0 === new Object());
write(+0 === [1, 2, 3]);
write(+0 === [1 ,2 , 3]);
write(+0 === new Array(3));
write(+0 === Array(3));
write(+0 === new Array(1 ,2 ,3));
write(+0 === Array(1));
write(+0 === foo);
write(-0 === undefined);
write(-0 === null);
write(-0 === true);
write(-0 === false);
write(-0 === Boolean(true));
write(-0 === Boolean(false));
write(-0 === new Boolean(true));
write(-0 === new Boolean(false));
write(-0 === NaN);
write(-0 === +0);
write(-0 === -0);
write(-0 === 0);
write(-0 === 0.0);
write(-0 === -0.0);
write(-0 === +0.0);
write(-0 === 1);
write(-0 === 10);
write(-0 === 10.0);
write(-0 === 10.1);
write(-0 === -1);
write(-0 === -10);
write(-0 === -10.0);
write(-0 === -10.1);
write(-0 === Number.MAX_VALUE);
write(-0 === Number.MIN_VALUE);
write(-0 === Number.NaN);
write(-0 === Number.POSITIVE_INFINITY);
write(-0 === Number.NEGATIVE_INFINITY);
write(-0 === new Number(NaN));
write(-0 === new Number(+0));
write(-0 === new Number(-0));
write(-0 === new Number(0));
write(-0 === new Number(0.0));
write(-0 === new Number(-0.0));
write(-0 === new Number(+0.0));
write(-0 === new Number(1));
write(-0 === new Number(10));
write(-0 === new Number(10.0));
write(-0 === new Number(10.1));
write(-0 === new Number(-1));
write(-0 === new Number(-10));
write(-0 === new Number(-10.0));
write(-0 === new Number(-10.1));
write(-0 === new Number(Number.MAX_VALUE));
write(-0 === new Number(Number.MIN_VALUE));
write(-0 === new Number(Number.NaN));
write(-0 === new Number(Number.POSITIVE_INFINITY));
write(-0 === new Number(Number.NEGATIVE_INFINITY));
write(-0 === '');
write(-0 === 0xa);
write(-0 === 04);
write(-0 === 'hello');
write(-0 === 'hel' + 'lo');
write(-0 === String(''));
write(-0 === String('hello'));
write(-0 === String('h' + 'ello'));
write(-0 === new String(''));
write(-0 === new String('hello'));
write(-0 === new String('he' + 'llo'));
write(-0 === new Object());
write(-0 === new Object());
write(-0 === [1, 2, 3]);
write(-0 === [1 ,2 , 3]);
write(-0 === new Array(3));
write(-0 === Array(3));
write(-0 === new Array(1 ,2 ,3));
write(-0 === Array(1));
write(-0 === foo);
write(0 === undefined);
write(0 === null);
write(0 === true);
write(0 === false);
write(0 === Boolean(true));
write(0 === Boolean(false));
write(0 === new Boolean(true));
write(0 === new Boolean(false));
write(0 === NaN);
write(0 === +0);
write(0 === -0);
write(0 === 0);
write(0 === 0.0);
write(0 === -0.0);
write(0 === +0.0);
write(0 === 1);
write(0 === 10);
write(0 === 10.0);
write(0 === 10.1);
write(0 === -1);
write(0 === -10);
write(0 === -10.0);
write(0 === -10.1);
write(0 === Number.MAX_VALUE);
write(0 === Number.MIN_VALUE);
write(0 === Number.NaN);
write(0 === Number.POSITIVE_INFINITY);
write(0 === Number.NEGATIVE_INFINITY);
write(0 === new Number(NaN));
write(0 === new Number(+0));
write(0 === new Number(-0));
write(0 === new Number(0));
write(0 === new Number(0.0));
write(0 === new Number(-0.0));
write(0 === new Number(+0.0));
write(0 === new Number(1));
write(0 === new Number(10));
write(0 === new Number(10.0));
write(0 === new Number(10.1));
write(0 === new Number(-1));
write(0 === new Number(-10));
write(0 === new Number(-10.0));
write(0 === new Number(-10.1));
write(0 === new Number(Number.MAX_VALUE));
write(0 === new Number(Number.MIN_VALUE));
write(0 === new Number(Number.NaN));
write(0 === new Number(Number.POSITIVE_INFINITY));
write(0 === new Number(Number.NEGATIVE_INFINITY));
write(0 === '');
write(0 === 0xa);
write(0 === 04);
write(0 === 'hello');
write(0 === 'hel' + 'lo');
write(0 === String(''));
write(0 === String('hello'));
write(0 === String('h' + 'ello'));
write(0 === new String(''));
write(0 === new String('hello'));
write(0 === new String('he' + 'llo'));
write(0 === new Object());
write(0 === new Object());
write(0 === [1, 2, 3]);
write(0 === [1 ,2 , 3]);
write(0 === new Array(3));
write(0 === Array(3));
write(0 === new Array(1 ,2 ,3));
write(0 === Array(1));
write(0 === foo);
write(0.0 === undefined);
write(0.0 === null);
write(0.0 === true);
write(0.0 === false);
write(0.0 === Boolean(true));
write(0.0 === Boolean(false));
write(0.0 === new Boolean(true));
write(0.0 === new Boolean(false));
write(0.0 === NaN);
write(0.0 === +0);
write(0.0 === -0);
write(0.0 === 0);
write(0.0 === 0.0);
write(0.0 === -0.0);
write(0.0 === +0.0);
write(0.0 === 1);
write(0.0 === 10);
write(0.0 === 10.0);
write(0.0 === 10.1);
write(0.0 === -1);
write(0.0 === -10);
write(0.0 === -10.0);
write(0.0 === -10.1);
write(0.0 === Number.MAX_VALUE);
write(0.0 === Number.MIN_VALUE);
write(0.0 === Number.NaN);
write(0.0 === Number.POSITIVE_INFINITY);
write(0.0 === Number.NEGATIVE_INFINITY);
write(0.0 === new Number(NaN));
write(0.0 === new Number(+0));
write(0.0 === new Number(-0));
write(0.0 === new Number(0));
write(0.0 === new Number(0.0));
write(0.0 === new Number(-0.0));
write(0.0 === new Number(+0.0));
write(0.0 === new Number(1));
write(0.0 === new Number(10));
write(0.0 === new Number(10.0));
write(0.0 === new Number(10.1));
write(0.0 === new Number(-1));
write(0.0 === new Number(-10));
write(0.0 === new Number(-10.0));
write(0.0 === new Number(-10.1));
write(0.0 === new Number(Number.MAX_VALUE));
write(0.0 === new Number(Number.MIN_VALUE));
write(0.0 === new Number(Number.NaN));
write(0.0 === new Number(Number.POSITIVE_INFINITY));
write(0.0 === new Number(Number.NEGATIVE_INFINITY));
write(0.0 === '');
write(0.0 === 0xa);
write(0.0 === 04);
write(0.0 === 'hello');
write(0.0 === 'hel' + 'lo');
write(0.0 === String(''));
write(0.0 === String('hello'));
write(0.0 === String('h' + 'ello'));
write(0.0 === new String(''));
write(0.0 === new String('hello'));
write(0.0 === new String('he' + 'llo'));
write(0.0 === new Object());
write(0.0 === new Object());
write(0.0 === [1, 2, 3]);
write(0.0 === [1 ,2 , 3]);
write(0.0 === new Array(3));
write(0.0 === Array(3));
write(0.0 === new Array(1 ,2 ,3));
write(0.0 === Array(1));
write(0.0 === foo);
write(-0.0 === undefined);
write(-0.0 === null);
write(-0.0 === true);
write(-0.0 === false);
write(-0.0 === Boolean(true));
write(-0.0 === Boolean(false));
write(-0.0 === new Boolean(true));
write(-0.0 === new Boolean(false));
write(-0.0 === NaN);
write(-0.0 === +0);
write(-0.0 === -0);
write(-0.0 === 0);
write(-0.0 === 0.0);
write(-0.0 === -0.0);
write(-0.0 === +0.0);
write(-0.0 === 1);
write(-0.0 === 10);
write(-0.0 === 10.0);
write(-0.0 === 10.1);
write(-0.0 === -1);
write(-0.0 === -10);
write(-0.0 === -10.0);
write(-0.0 === -10.1);
write(-0.0 === Number.MAX_VALUE);
write(-0.0 === Number.MIN_VALUE);
write(-0.0 === Number.NaN);
write(-0.0 === Number.POSITIVE_INFINITY);
write(-0.0 === Number.NEGATIVE_INFINITY);
write(-0.0 === new Number(NaN));
write(-0.0 === new Number(+0));
write(-0.0 === new Number(-0));
write(-0.0 === new Number(0));
write(-0.0 === new Number(0.0));
write(-0.0 === new Number(-0.0));
write(-0.0 === new Number(+0.0));
write(-0.0 === new Number(1));
write(-0.0 === new Number(10));
write(-0.0 === new Number(10.0));
write(-0.0 === new Number(10.1));
write(-0.0 === new Number(-1));
write(-0.0 === new Number(-10));
write(-0.0 === new Number(-10.0));
write(-0.0 === new Number(-10.1));
write(-0.0 === new Number(Number.MAX_VALUE));
write(-0.0 === new Number(Number.MIN_VALUE));
write(-0.0 === new Number(Number.NaN));
write(-0.0 === new Number(Number.POSITIVE_INFINITY));
write(-0.0 === new Number(Number.NEGATIVE_INFINITY));
write(-0.0 === '');
write(-0.0 === 0xa);
write(-0.0 === 04);
write(-0.0 === 'hello');
write(-0.0 === 'hel' + 'lo');
write(-0.0 === String(''));
write(-0.0 === String('hello'));
write(-0.0 === String('h' + 'ello'));
write(-0.0 === new String(''));
write(-0.0 === new String('hello'));
write(-0.0 === new String('he' + 'llo'));
write(-0.0 === new Object());
write(-0.0 === new Object());
write(-0.0 === [1, 2, 3]);
write(-0.0 === [1 ,2 , 3]);
write(-0.0 === new Array(3));
write(-0.0 === Array(3));
write(-0.0 === new Array(1 ,2 ,3));
write(-0.0 === Array(1));
write(-0.0 === foo);
write(+0.0 === undefined);
write(+0.0 === null);
write(+0.0 === true);
write(+0.0 === false);
write(+0.0 === Boolean(true));
write(+0.0 === Boolean(false));
write(+0.0 === new Boolean(true));
write(+0.0 === new Boolean(false));
write(+0.0 === NaN);
write(+0.0 === +0);
write(+0.0 === -0);
write(+0.0 === 0);
write(+0.0 === 0.0);
write(+0.0 === -0.0);
write(+0.0 === +0.0);
write(+0.0 === 1);
write(+0.0 === 10);
write(+0.0 === 10.0);
write(+0.0 === 10.1);
write(+0.0 === -1);
write(+0.0 === -10);
write(+0.0 === -10.0);
write(+0.0 === -10.1);
write(+0.0 === Number.MAX_VALUE);
write(+0.0 === Number.MIN_VALUE);
write(+0.0 === Number.NaN);
write(+0.0 === Number.POSITIVE_INFINITY);
write(+0.0 === Number.NEGATIVE_INFINITY);
write(+0.0 === new Number(NaN));
write(+0.0 === new Number(+0));
write(+0.0 === new Number(-0));
write(+0.0 === new Number(0));
write(+0.0 === new Number(0.0));
write(+0.0 === new Number(-0.0));
write(+0.0 === new Number(+0.0));
write(+0.0 === new Number(1));
write(+0.0 === new Number(10));
write(+0.0 === new Number(10.0));
write(+0.0 === new Number(10.1));
write(+0.0 === new Number(-1));
write(+0.0 === new Number(-10));
write(+0.0 === new Number(-10.0));
write(+0.0 === new Number(-10.1));
write(+0.0 === new Number(Number.MAX_VALUE));
write(+0.0 === new Number(Number.MIN_VALUE));
write(+0.0 === new Number(Number.NaN));
write(+0.0 === new Number(Number.POSITIVE_INFINITY));
write(+0.0 === new Number(Number.NEGATIVE_INFINITY));
